home *** CD-ROM | disk | FTP | other *** search
/ Total Network Tools 2002 / NextStepPublishing-TotalNetworkTools2002-Win95.iso / Archive / Misc Servers / Zope.exe / REGCHECK.PYC (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  1999-07-21  |  5.6 KB  |  198 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 1.5)
  3.  
  4. import win32con
  5. import regutil
  6. import win32api
  7. import os
  8. import sys
  9.  
  10. def CheckRegisteredExe(exename):
  11.     
  12.     try:
  13.         os.stat(win32api.RegQueryValue(regutil.GetRootKey(), regutil.GetAppPathsKey() + '\\' + exename))
  14.     except (os.error, win32api.error):
  15.         print 'Registration of %s - Not registered correctly' % exename
  16.  
  17.  
  18.  
  19. def CheckPathString(pathString):
  20.     import string
  21.     for path in string.split(pathString, ';'):
  22.         pass
  23.     
  24.     return None
  25.  
  26.  
  27. def CheckPythonPaths(verbose):
  28.     if verbose:
  29.         print 'Python Paths:'
  30.     
  31.     if verbose:
  32.         print '\tCore Path:',
  33.     
  34.     
  35.     try:
  36.         appPath = win32api.RegQueryValue(regutil.GetRootKey(), regutil.BuildDefaultPythonKey() + '\\PythonPath')
  37.     except win32api.error:
  38.         (code, fn, desc) = None
  39.         print '** does not exist - ', desc
  40.  
  41.     problem = CheckPathString(appPath)
  42.     if problem:
  43.         print problem
  44.     elif verbose:
  45.         print appPath
  46.     
  47.     key = win32api.RegOpenKey(regutil.GetRootKey(), regutil.BuildDefaultPythonKey() + '\\PythonPath', 0, win32con.KEY_READ)
  48.     
  49.     try:
  50.         keyNo = 0
  51.         while 1:
  52.             
  53.             try:
  54.                 appName = win32api.RegEnumKey(key, keyNo)
  55.                 appPath = win32api.RegQueryValue(key, appName)
  56.                 if verbose:
  57.                     print '\t' + appName + ':',
  58.                 
  59.                 if appPath:
  60.                     problem = CheckPathString(appPath)
  61.                     if problem:
  62.                         print problem
  63.                     elif verbose:
  64.                         print appPath
  65.                     
  66.                 elif verbose:
  67.                     print '(empty)'
  68.                 
  69.                 keyNo = keyNo + 1
  70.             except win32api.error:
  71.                 break
  72.  
  73.     finally:
  74.         win32api.RegCloseKey(key)
  75.  
  76.  
  77.  
  78. def CheckHelpFiles(verbose):
  79.     if verbose:
  80.         print 'Help Files:'
  81.     
  82.     
  83.     try:
  84.         key = win32api.RegOpenKey(regutil.GetRootKey(), regutil.BuildDefaultPythonKey() + '\\Help', 0, win32con.KEY_READ)
  85.     except win32api.error:
  86.         (code, fn, details) = None
  87.         import winerror
  88.         if code != winerror.ERROR_FILE_NOT_FOUND:
  89.             raise win32api.error, (code, fn, desc)
  90.         
  91.         return None
  92.  
  93.     
  94.     try:
  95.         keyNo = 0
  96.         while 1:
  97.             
  98.             try:
  99.                 helpDesc = win32api.RegEnumKey(key, keyNo)
  100.                 helpFile = win32api.RegQueryValue(key, helpDesc)
  101.                 if verbose:
  102.                     print '\t' + helpDesc + ':',
  103.                 
  104.                 
  105.                 try:
  106.                     os.stat(helpFile)
  107.                     if verbose:
  108.                         print helpFile
  109.                 except os.error:
  110.                     print '** Help file %s does not exist' % helpFile
  111.  
  112.                 keyNo = keyNo + 1
  113.             except win32api.error:
  114.                 (code, fn, desc) = None
  115.                 import winerror
  116.                 if code != winerror.ERROR_NO_MORE_ITEMS:
  117.                     raise win32api.error, (code, fn, desc)
  118.                 
  119.                 break
  120.  
  121.     finally:
  122.         win32api.RegCloseKey(key)
  123.  
  124.  
  125.  
  126. def ChcekRegisteredModules(verbose):
  127.     k = regutil.BuildDefaultPythonKey() + '\\Modules'
  128.     
  129.     try:
  130.         keyhandle = win32api.RegOpenKey(regutil.GetRootKey(), k)
  131.     except win32api.error:
  132.         (code, fn, details) = None
  133.         import winerror
  134.         if code != winerror.ERROR_FILE_NOT_FOUND:
  135.             raise win32api.error, (code, fn, desc)
  136.         
  137.         return None
  138.  
  139.     
  140.     try:
  141.         if verbose:
  142.             print 'Registered Modules:'
  143.         
  144.         num = 0
  145.         while 1:
  146.             
  147.             try:
  148.                 key = win32api.RegEnumKey(keyhandle, num)
  149.             except win32api.error:
  150.                 break
  151.  
  152.             num = num + 1
  153.             value = win32api.RegQueryValue(keyhandle, key)
  154.             if verbose:
  155.                 print '\t%s:' % key,
  156.             
  157.             
  158.             try:
  159.                 os.stat(value)
  160.                 if verbose:
  161.                     print value
  162.             except os.error:
  163.                 if not verbose:
  164.                     print 'Error is registered module %s' % value,
  165.                 
  166.                 print '** Not found at %s' % value
  167.  
  168.     finally:
  169.         win32api.RegCloseKey(keyhandle)
  170.  
  171.  
  172.  
  173. def CheckRegistry(verbose = 0):
  174.     defaultRootKey = regutil.GetRootKey()
  175.     if os.environ.has_key('pythonpath'):
  176.         print 'Warning - PythonPath in environment - registry PythonPath will be ignored'
  177.     
  178.     CheckPythonPaths(verbose)
  179.     CheckHelpFiles(verbose)
  180.     ChcekRegisteredModules(verbose)
  181.     CheckRegisteredExe('Python.exe')
  182.     CheckRegisteredExe('Pythonwin.exe')
  183.     
  184.     try:
  185.         os.stat(win32api.RegQueryValue(defaultRootKey, regutil.BuildDefaultPythonKey() + '\\Dll'))
  186.     except (os.error, win32api.error):
  187.         print 'DLL entry not set correctly'
  188.  
  189.  
  190. if __name__ == '__main__':
  191.     import sys
  192.     if len(sys.argv) > 1 and sys.argv[1] == '-q':
  193.         verbose = 0
  194.     else:
  195.         verbose = 1
  196.     CheckRegistry(verbose)
  197.  
  198.